package 炫彩基类

import (
	common "gitee.com/go_888/xcgui/xcgui/common"
	"unsafe"

	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// 背景对象_置外间距, 外间距与对齐标识(BkObject_Align_Flag_)互相依赖.
//
// hObj: 背景对象句柄.
//
// left: 左边间距.
//
// top: 顶部间距.
//
// right: 右边间距.
//
// bottom: 底部间距.
func X背景对象_设置外间距(背景对象句柄 int, 左边间距, 顶部间距, 右边间距, 底部间距 int32) {
	xBkObj_SetMargin.Call(uintptr(背景对象句柄), uintptr(左边间距), uintptr(顶部间距), uintptr(右边间距), uintptr(底部间距))
}

// 背景对象_置对齐.
//
// hObj: 背景对象句柄.
//
// nFlags: 对齐方式: xcc.BkObject_Align_Flag_.
func X背景对象_设置对齐(背景对象句柄 int, 对齐方式 xcc.X背景对象对齐方式) {
	xBkObj_SetAlign.Call(uintptr(背景对象句柄), uintptr(对齐方式))
}

// 背景对象_置图片.
//
// hObj: 背景对象句柄.
//
// hImage: 图片句柄.
func X背景对象_设置图片(背景对象句柄 int, 图片句柄 int) {
	xBkObj_SetImage.Call(uintptr(背景对象句柄), uintptr(图片句柄))
}

// 背景对象_置旋转.
//
// hObj: 背景对象句柄.
//
// angle: 旋转角度.
func X背景对象_设置旋转(背景对象句柄 int, 旋转角度 float32) {
	xBkObj_SetRotate.Call(uintptr(背景对象句柄), common.X小数32位到uintptr(旋转角度))
}

// 背景对象_置填充颜色.
//
// hObj: 背景对象句柄.
//
// color: xc.RGBA 颜色值.
func X背景对象_设置填充颜色(背景对象句柄 int, ABGR颜色值 int) {
	xBkObj_SetFillColor.Call(uintptr(背景对象句柄), uintptr(ABGR颜色值))
}

// 背景对象_置边框宽度.
//
// hObj: 背景对象句柄.
//
// width: 宽度.
func X背景对象_设置边框宽度(背景对象句柄 int, 宽度 int32) {
	xBkObj_SetBorderWidth.Call(uintptr(背景对象句柄), uintptr(宽度))
}

// 背景对象_置边框颜色.
//
// hObj: 背景对象句柄.
//
// color: xc.RGBA 颜色值.
func X背景对象_设置边框颜色(背景对象句柄 int, ABGR颜色值 int) {
	xBkObj_SetBorderColor.Call(uintptr(背景对象句柄), uintptr(ABGR颜色值))
}

// 背景对象_置矩形圆角.
//
// hObj: 背景对象句柄.
//
// leftTop: 左上角.
//
// leftBottom: 左下角.
//
// rightTop: 右上角.
//
// rightBottom: 右下角.
func X背景对象_设置矩形圆角(背景对象句柄 int, 左上角, 左下角, 右上角, 右下角 int32) {
	xBkObj_SetRectRoundAngle.Call(uintptr(背景对象句柄), uintptr(左上角), uintptr(左下角), uintptr(右上角), uintptr(右下角))
}

// 背景对象_启用填充, 启用绘制填充.
//
// hObj: 背景对象句柄.
//
// bEnable: 是否启用.
func X背景对象_启用填充(背景对象句柄 int, 是否启用 bool) {
	xBkObj_EnableFill.Call(uintptr(背景对象句柄), common.X布尔值到uintptr(是否启用))
}

// 背景对象_启用边框, 启用绘制边框.
//
// hObj: 背景对象句柄.
//
// bEnable: 是否启用.
func X背景对象_启用边框(背景对象句柄 int, 是否启用 bool) {
	xBkObj_EnableBorder.Call(uintptr(背景对象句柄), common.X布尔值到uintptr(是否启用))
}

// 背景对象_置文本.
//
// hObj: 背景对象句柄.
//
// pText: 文本字符串.
func X背景对象_设置文本(背景对象句柄 int, 文本文本 string) {
	xBkObj_SetText.Call(uintptr(背景对象句柄), common.X文本到uintptr(文本文本))
}

// 背景对象_置字体.
//
// hObj: 背景对象句柄.
//
// hFont: 字体句柄.
func X背景对象_设置字体(背景对象句柄 int, 字体句柄 int) {
	xBkObj_SetFont.Call(uintptr(背景对象句柄), uintptr(字体句柄))
}

// 背景对象_置文本对齐.
//
// hObj: 背景对象句柄.
//
// nAlign: 文本对齐方式: xcc.TextFormatFlag_, xcc.TextAlignFlag_, xcc.TextTrimming_.
func X背景对象_设置文本对齐(背景对象句柄 int, 文本对齐方式 xcc.X文本对齐) {
	xBkObj_SetTextAlign.Call(uintptr(背景对象句柄), uintptr(文本对齐方式))
}

// 背景对象_取外间距.
//
// hObj: 背景对象句柄.
//
// pMargin: 接收返回外间距.
func X背景对象_取外间距(背景对象句柄 int, 返回矩形 *X结构_矩形) {
	xBkObj_GetMargin.Call(uintptr(背景对象句柄), uintptr(unsafe.Pointer(返回矩形)))
}

// 背景对象_取对齐, 返回对齐标识: xcc.BkObject_Align_Flag_.
//
// hObj: 背景对象句柄.
func X背景对象_取对齐(背景对象句柄 int) xcc.X背景对象对齐方式 {
	r, _, _ := xBkObj_GetAlign.Call(uintptr(背景对象句柄))
	return xcc.X背景对象对齐方式(r)
}

// 背景对象_取图片, 返回图片句柄.
//
// hObj: 背景对象句柄.
func X背景对象_取图片(背景对象句柄 int) int {
	r, _, _ := xBkObj_GetImage.Call(uintptr(背景对象句柄))
	return int(r)
}

// 背景对象_取旋转角度, 返回旋转角度.
//
// hObj: 背景对象句柄.
func X背景对象_取旋转角度(背景对象句柄 int) int32 {
	r, _, _ := xBkObj_GetRotate.Call(uintptr(背景对象句柄))
	return int32(r)
}

// 背景对象_取填充色, 返回 RGBA 填充色.
//
// hObj: 背景对象句柄.
func X背景对象_取填充色(背景对象句柄 int) int {
	r, _, _ := xBkObj_GetFillColor.Call(uintptr(背景对象句柄))
	return int(r)
}

// 背景对象_取边框色, 返回 RGBA 边框色.
//
// hObj: 背景对象句柄.
func X背景对象_取边框色(背景对象句柄 int) int {
	r, _, _ := xBkObj_GetBorderColor.Call(uintptr(背景对象句柄))
	return int(r)
}

// 背景对象_取边框宽度, 返回边框宽度.
//
// hObj: 背景对象句柄.
func X背景对象_取边框宽度(背景对象句柄 int) int32 {
	r, _, _ := xBkObj_GetBorderWidth.Call(uintptr(背景对象句柄))
	return int32(r)
}

// 背景对象_取矩形圆角.
//
// hObj: 背景对象句柄.
//
// pRect: 接收返回圆角大小.
func X背景对象_取矩形圆角(背景对象句柄 int, 返回矩形 *X结构_矩形) {
	xBkObj_GetRectRoundAngle.Call(uintptr(背景对象句柄), uintptr(unsafe.Pointer(返回矩形)))
}

// 背景对象_是否填充.
//
// hObj: 背景对象句柄.
func X背景对象_是否填充(背景对象句柄 int) bool {
	r, _, _ := xBkObj_IsFill.Call(uintptr(背景对象句柄))
	return r != 0
}

// 背景对象_是否边框.
//
// hObj: 背景对象句柄.
func X背景对象_是否边框(背景对象句柄 int) bool {
	r, _, _ := xBkObj_IsBorder.Call(uintptr(背景对象句柄))
	return r != 0
}

// 背景对象_取文本.
//
// hObj: 背景对象句柄.
func X背景对象_取文本(背景对象句柄 int) string {
	r, _, _ := xBkObj_GetText.Call(uintptr(背景对象句柄))
	return common.Uintptr到文本(r)
}

// 背景对象_取字体, 返回字体句柄.
//
// hObj: 背景对象句柄.
func X背景对象_取字体(背景对象句柄 int) int {
	r, _, _ := xBkObj_GetFont.Call(uintptr(背景对象句柄))
	return int(r)
}

// 背景对象_取文本对齐, 返回文本对齐方式: xcc.TextFormatFlag_.
//
// hObj: 背景对象句柄.
func X背景对象_取文本对齐(背景对象句柄 int) xcc.X文本对齐 {
	r, _, _ := xBkObj_GetTextAlign.Call(uintptr(背景对象句柄))
	return xcc.X文本对齐(r)
}
